﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using System.Data.SqlClient;
using QLKhachSan.DAO;
using QLKhachSan.DTO;
using QLKhachSan.BUS;
using DevExpress.XtraEditors;


namespace QLKhachSan.GUI
{
    public partial class fNhanHuyPhong : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public fNhanHuyPhong()
        {
            InitializeComponent();
        }
        private fDanhSachPhong _fDanhSachPhong = new fDanhSachPhong();
        private void textBoxMaPhieu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && (e.KeyChar != '.'))
                e.Handled = true;
        }
        private void fNhanPhong_Load(object sender, EventArgs e)
        {
            textBoxMaPhieu.ResetText();
        }

        private void simpleButtonNhanP_Click(object sender, EventArgs e)
        {
            if (textBoxMaPhieu.Text != "")
            {
                int dem = 0;
                DataTable dt_pdp = BUS_PhieuDatPhong.hienthiDanhSachPhieuDatPhong();
                for (int i = 0; i < dt_pdp.Rows.Count;i++ )
                {
                    if(dt_pdp.Rows[i]["MaPhieuDat"].ToString() == textBoxMaPhieu.Text.Trim() &&
                       dt_pdp.Rows[i]["DaNhan"].ToString().Trim() == "Chưa" )
                    {
                        dem++;
                        break;
                    }
                }
                if(dem > 0)
                {
                    // Them Phieu Den
                    DTO_PhieuDatPhong dto_pdp = new DTO_PhieuDatPhong();
                    dto_pdp.MaPhieuDat = int.Parse(textBoxMaPhieu.Text);
                    dt_pdp =  BUS_PhieuDatPhong.hienthiDanhSachPhieuDatPhongTheoMaPhieu(dto_pdp);
                    DTO_PhieuDen dt_pd = new DTO_PhieuDen();                    
                    dt_pd.MaKH = int.Parse(dt_pdp.Rows[0]["MaKH"].ToString());                    
                    dt_pd.NgayThue = DateTime.Parse(dt_pdp.Rows[0]["NgayDen"].ToString());
                    dt_pd.TienTraTruoc = int.Parse(dt_pdp.Rows[0]["TienCoc"].ToString());
                    dt_pd.MaNV = int.Parse(dt_pdp.Rows[0]["MaNV"].ToString());
                    BUS_PhieuDen.themPhieuDen(dt_pd);
                    // Sua Da Nhan Phieu Dat
                    dto_pdp.DaNhan = "Rồi";
                    BUS_PhieuDatPhong.suaPhieuDatPhongTheoDaNhan(dto_pdp);

                    // Them CT Phieu Den
                    string _TenPhong = "";
                    DataTable dt_ctpdp = BUS_CTPhieuDatPhong.hienthiDanhSachCTPhieuDatPhong();
                    DTO_CTPhieuDen dto_ctpd = new DTO_CTPhieuDen();
                    DTO_Phong dto_p = new DTO_Phong();
                    for (int i = 0; i < dt_ctpdp.Rows.Count ; i++ ) 
                    {
                        if (dt_ctpdp.Rows[i]["MaPhieuDat"].ToString() == textBoxMaPhieu.Text.Trim())
                        { 
                            // CT Phieu
                            dto_ctpd.MaPhieuDen = int.Parse(textBoxMaPhieu.Text);
                            dto_ctpd.NgayTra = DateTime.Parse(dt_ctpdp.Rows[i]["NgayTra"].ToString());
                            dto_ctpd.TenPhong = dt_ctpdp.Rows[i]["TenPhong"].ToString();
                            _TenPhong += "  " + dt_ctpdp.Rows[i]["TenPhong"].ToString() + " ,";

                            // Tinh Trang Phong
                           dto_p.TenPhong = dt_ctpdp.Rows[i]["TenPhong"].ToString();
                           dto_p.MaTrangThai = 3 ;
                           BUS_Phong.suaPhongTheoTrangThai(dto_p); 
                        }
                    }
                    MessageBox.Show(" Đã Nhận Phòng : " + _TenPhong, " Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    simpleButtonThoat_Click(sender,e);
                                 
                }
                else
                {
                    textBoxMaPhieu.ResetText();
                    MessageBox.Show(" Mã phiếu đặt không tồn tại && Đã Nhận Phòng Rồi ", " Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else 
            {
                MessageBox.Show(" Bạn cần nhập Mã phiếu đặt ???", " Lỗi !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void simpleButtonHuyDat_Click(object sender, EventArgs e)
        {
            if (textBoxMaPhieu.Text != "")
            {
               
                    int dem = 0;                   
                    DataTable dt_pdp = BUS_PhieuDatPhong.hienthiDanhSachPhieuDatPhong();
                    for (int i = 0; i < dt_pdp.Rows.Count; i++)
                    {
                        if (dt_pdp.Rows[i]["MaPhieuDat"].ToString() == textBoxMaPhieu.Text.Trim() &&
                            dt_pdp.Rows[i]["DaNhan"].ToString().Trim() == "Chưa" )
                        {
                            dem++;
                            break;
                        }
                    }
                    if (dem > 0)
                    {
                        
                        if (MessageBox.Show("Bạn có Chắc chắn muốn Phiếu Đặt Phòng này không ???", "Note !", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {

                            // Huy CT Phieu Dat
                            string _TenPhongHuy = "";
                            DataTable dt_ctpdp = BUS_CTPhieuDatPhong.hienthiDanhSachCTPhieuDatPhong();
                            DTO_CTPhieuDatPhong dto_ctpd = new DTO_CTPhieuDatPhong();
                            DTO_Phong dto_p = new DTO_Phong();
                            for (int i = 0; i < dt_ctpdp.Rows.Count; i++)
                            {
                                if (dt_ctpdp.Rows[i]["MaPhieuDat"].ToString() == textBoxMaPhieu.Text.Trim())
                                {
                                    // CT Phieu Dat
                                    dto_ctpd.MaCTPhieuDat = int.Parse(dt_ctpdp.Rows[i]["MaCTPhieuDat"].ToString());
                                    _TenPhongHuy += "  " + dt_ctpdp.Rows[i]["TenPhong"].ToString() + " ,";
                                    BUS_CTPhieuDatPhong.xoaCTPhieuDatPhong(dto_ctpd);


                                    // Tinh Trang Phong
                                    dto_p.TenPhong = dt_ctpdp.Rows[i]["TenPhong"].ToString();
                                    dto_p.MaTrangThai = 1;
                                    BUS_Phong.suaPhongTheoTrangThai(dto_p);
                                }
                            }

                            DTO_PhieuDatPhong dto_pd = new DTO_PhieuDatPhong();
                            dto_pd.MaPhieuDat = int.Parse(textBoxMaPhieu.Text.Trim());
                            BUS_PhieuDatPhong.xoaPhieuDatPhong(dto_pd);
                            MessageBox.Show(" Đã Hủy Đặt Phòng : " + _TenPhongHuy, " Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            simpleButtonThoat_Click(sender, e);                            
                        }
                    }
                
                else
                {
                    textBoxMaPhieu.ResetText();
                    MessageBox.Show(" Mã phiếu đặt không tồn tại && Đã nhận phòng rồi ?", " Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show(" Bạn cần nhập Mã phiếu đặt ???", " Lỗi !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void simpleButtonThoat_Click(object sender, EventArgs e)
        {
            this.Close();
            textBoxMaPhieu.ResetText();
        }
    }
}